// utils/share.js
export default class ShareUtils {
  /**
   * 分享给好友
   * @param {Object} options 分享参数
   * @param {String} options.title 分享标题
   * @param {String} options.path 分享路径
   * @param {String} options.imageUrl 分享图片
   */
  static shareToFriend(options = {}) {
    const { title, path, imageUrl } = options

    return {
      title: title,
      path: path,
      imageUrl: imageUrl,
      success: (res) => {
        console.log('分享成功', res)
        uni.showToast({
          title: '分享成功',
          icon: 'success'
        })
      },
      fail: (err) => {
        console.log('分享失败', err)
        uni.showToast({
          title: '分享失败',
          icon: 'none'
        })
      }
    }
  }

  /**
   * 主动触发分享
   */
  static triggerShare() {
    uni.showShareMenu({
      withShareTicket: true,
      success: () => {
        uni.showToast({
          title: '请点击右上角分享',
          icon: 'none',
          duration: 2000
        })
      },
      fail: (err) => {
        console.log('显示分享菜单失败', err)
        uni.showToast({
          title: '分享功能暂不可用',
          icon: 'none'
        })
      }
    })
  }

  /**
   * 生成分享路径
   * @param {String} pagePath 页面路径
   * @param {Object} params 参数对象
   */
  static generateSharePath(pagePath, params = {}) {
    const queryString = Object.keys(params)
      .map((key) => `${key}=${encodeURIComponent(params[key])}`)
      .join('&')

    return queryString ? `${pagePath}?${queryString}` : pagePath
  }
}
